JBoss.orgCommunity Documentation

Chapter 6. M3UA

6.1. JBoss Communications M3UA Design Overview
6.2. M3UAManagement
6.2.1. API's to manage resource
6.2.2. Configuration

M3UA stands for MTP Level 3 (MTP3) User Adaptation Layer as defined by the IETF SIGTRAN working group in RFC 4666 (which replaces and supersedes RFC 3332). M3UA enables the SS7 protocol's User Parts (e.g. ISUP, SCCP and TUP) to run over IP instead of legacy SS7. JBoss Communications M3UA Stack use the services of Mobicents SCTP stack to transmit MTP-TRANSFER primitives.

Note

To know more about Mobicents SCTP stack, read the documentation included with Mobicents SCTP library.

JBoss Communications M3UA Stack provides the transport of MTP-TRANSFER primitives across an established SCTP association between an SGP and an ASP. The JBoss Communications M3UA Stack may also be used for point-to-point signaling between two IP Server Processes (IPSPs).

JBoss Communications M3UA Stack provides flexibility to be configured as either Single Exchange (SE) or Double Exchange (DE) of ASP State Maintenance (ASPSM) Messages and ASP Traffic Maintenance (ASPTM) messages

Below diagram shows various layers involved

Layers involved

Figure 6.1. Layers involved


The internal structure of JBoss Communications M3UA stack looks like


Instance of M3UAManagement manages the AS, AspFactory and routes.

In addition to manage As, AspFactory and routes, management also persist the state of each in XXX_M3UA.xml file, where XXX is unique name give to management instance.

M3UAManagement is divided into two sections 1) managing the resources and 2) configuring management

public As createAs(String asName, Functionality functionality, ExchangeType exchangeType, IPSPType ipspType, RoutingContext rc, TrafficModeType trafficMode)

Create's a new As of type specified by Functionality. Functionality is enum of type AS, IPSP or SGW. If the Functionality is IPSP, IPSPType type should specify if its SERVER or CLIENT side.

If Functionality is AS, it automatically assumes client side and tries to send the ASPUP to peer.

If Functionality is SGW, it automatically assumes server side and wait's for ASPUP from peer.

ExchangeType specifies if its single or double exchange.

RoutingContext is not mandatory, if passed same value will be used in all the relevant ASP Traffic Maintenance, Management and Transfer Messages

TrafficModeType is not mandatory and default is Loadshare. Broadcast mode is not supported.

Appropiate Exception is thrown if there is already As with same name.

public AspFactory createAspFactory(String aspName, String associationName)

Create's a new AspFactory. There is one-to-one relation between AspFactory and SCTP's Asscoiation. associationName represents the underlying SCTP Association.

Appropiate Exception's are thrown if there is already AspFactory with same name or there is no SCTP Association with the given name or SCTP Association is already assigned to some other AspFactory.

public As destroyAs(String asName)

Destroy existing As.

Appropiate Exception's are thrown if there is no As with given name, or As is ACTIVE or one ore more ASP's are assigned to this AS.

public AspFactory destroyAspFactory(String aspName)

Destroy existing AspFactory.

Appropiate Exception's are thrown if there is no AspFactory with given name.

public Asp assignAspToAs(String asName, String aspName)

Assign's the Asp (AspFactory with name aspName should be created before this step) to As.

Appropiate Exception's are thrown if there is no AspFactory with given name or no As with given name.

public Asp unassignAspFromAs(String asName, String aspName)

Unassign's the Asp from As.

Appropiate Exception's are thrown if there is no ASP or As with given name.

public void startAsp(String aspName)

Start's the ASP. The ASP state maintenance messages are exchanged if this ASP is of IPSP and client side or if its AS side. This will automatically start the underlying SCTP's Asscoiation.

Appropiate Exception's are thrown if there is no ASP with given name or ASP is already started.

public void stopAsp(String aspName)

Stop's the ASP. This will automatically stop the underlying SCTP's Asscoiation.

Appropiate Exception's are thrown if there is no ASP with given name or ASP is already stoped.

public void addRoute(int dpc, int opc, int si, String asName)

Add the As with the given asName as route for given dpc, opc and si. Specifying DPC is mandatory, however opc and si can be passed as -1 which is wild character. For example if MTP3 User Application sends message with dpc=5, opc=4 and si=3, management will try to search the AS with exact value of dpc, opc and si. If not found, managemnt will subsitute si with wild character and serach again. If not found management will substitute opc with wild character and search again. If not found its an error and message is dropped with appropriate error message.

Appropiate Exception's are thrown if there are already maximum AS configured for give combination of dpc, opc and si or there is no As for given asName.

public void removeRoute(int dpc, int opc, int si, String asName)

Remove the As as route for passed comibnation of dpc, opc and si.

Appropiate Exception's are thrown if is no As for given asName.